﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WMS.Domain.Entities.SystemUser;

/// <summary>
/// 充值用户数据模型，用于数据库持久化
/// </summary>
public class RechargeUser
{
    /// <summary>
    /// 主键ID（自增）
    /// </summary>
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }

    /// <summary>
    /// 用户编码（必须，长度不超过50字符）
    /// </summary>
    [Required(ErrorMessage = "请输入用户编码")]
    [MaxLength(50, ErrorMessage = "用户编码长度不能超过50个字符")]
    public string UserCode { get; set; }

    /// <summary>
    /// 充值金额（必须，需为正数，支持两位小数）
    /// </summary>
    [Required(ErrorMessage = "请输入充值金额")]
    [RegularExpression(@"^\d+(\.\d{1,2})?$", ErrorMessage = "充值金额格式不正确，需为正数")]
    [Range(0.01, double.MaxValue, ErrorMessage = "充值金额必须大于0")]
    public string Maney { get; set; }

    /// <summary>
    /// 充值方式（必须，仅支持微信支付、支付宝、银行卡、现金）
    /// </summary>
    [Required(ErrorMessage = "请选择充值方式")]
    [RegularExpression(@"^(微信支付|支付宝|银行卡|现金)$", ErrorMessage = "不支持的充值方式")]
    public string DepositMethod { get; set; }

    /// <summary>
    /// 操作备注（可选，长度不超过50字符）
    /// </summary>
    [MaxLength(50, ErrorMessage = "备注长度不能超过50个字符")]
    public string Remark { get; set; }

    /// <summary>
    /// 创建时间
    /// </summary>
    [Required]
    public DateTime CreateTime { get; set; } = DateTime.Now;
}